package com.cyt.work.association.service;

import com.cyt.base.model.dto.ReturnResult;
import com.cyt.work.association.model.po.WxAssociationNewDetail;
import com.cyt.work.association.model.vo.WxAssociationNewDetailVo;
import com.cyt.sys.model.po.SysUser;
import com.cyt.sys.service.BaseService;
import com.cyt.work.association.model.vo.WxAssociationNewDetailVoC;
import com.cyt.wx.model.po.WxEducationUser;

import java.util.List;

/**
 * 招新关联社团表-招新关联社团表Service层接口类
 *
 * @author han jun
 * @date 2019-9-3 16:42:35
 */
public interface WxAssociationNewDetailService extends BaseService<WxAssociationNewDetail> {

    /**
     * 分页查询
     *
     * @param wxAssociationNewDetailVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    ReturnResult findPage(WxAssociationNewDetailVo wxAssociationNewDetailVo, int pageNum, int pageSize);

    /**
     * 分页查询
     *
     * @param wxAssociationNewDetailVo 接受参数对象
     * @param pageNum 分页数
     * @param pageSize 每页显示条数
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    ReturnResult findVoPage(WxAssociationNewDetailVo wxAssociationNewDetailVo, int pageNum, int pageSize);

    /**
     * list查询
     *
     * @param wxAssociationNewDetailVo 接受参数对象
     * @return List<WxAssociationNewDetail>
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    List<WxAssociationNewDetail> findList(WxAssociationNewDetailVo wxAssociationNewDetailVo);

    /**
     * list查询
     *
     * @param wxAssociationNewDetailVo 接受参数对象
     * @return List<WxAssociationNewDetailVo>
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    List<WxAssociationNewDetailVo> findVoList(WxAssociationNewDetailVo wxAssociationNewDetailVo);


    /**
     * list查询(新)
     *
     * @param wxEducationUser 接受参数对象
     * @return List<WxAssociationNewDetail>
     * @author han jun
     * @date 2019-9-3 16:42:35
     */

     List<WxAssociationNewDetailVo> findVoListNew(WxEducationUser wxEducationUser);


     List<WxAssociationNewDetailVo> findVoListTeaNew(WxAssociationNewDetailVo wxAssociationNewDetailVo);

    /**
     * list查询有报名记录的社团（我的社团）
     *
     * @param wxEducationUser 接受参数对象
     * @return List<WxAssociationNewDetail>
     * @author ding xu
     * @date 2019-9-21
     */

    List<WxAssociationNewDetailVo> findVoListMy(WxEducationUser wxEducationUser);


    /**
     * 单个对象查询
     *
     * @param wxAssociationNewDetailVo 接受参数对象
     * @return WxAssociationNewDetail
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    WxAssociationNewDetail findOne(WxAssociationNewDetailVo wxAssociationNewDetailVo);

    /**
     * 单个对象查询
     *
     * @param wxAssociationNewDetailVo 接受参数对象
     * @return WxAssociationNewDetailVo
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    WxAssociationNewDetailVo findVoOne(WxAssociationNewDetailVo wxAssociationNewDetailVo);

    /**
     * 添加或更新
     *
     * @param wxAssociationNewDetailVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    ReturnResult addOrUpdate(WxAssociationNewDetailVo wxAssociationNewDetailVo, SysUser sysUser);

    /**
     * 根据条件逻辑删除
     *
     * @param wxAssociationNewDetailVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    ReturnResult remove(WxAssociationNewDetailVo wxAssociationNewDetailVo, SysUser sysUser);

    /**
     * 根据条件物理删除
     *
     * @param wxAssociationNewDetailVo 参数接受对象
     * @param sysUser      当前用户
     * @return ReturnResult
     * @author han jun
     * @date 2019-9-3 16:42:35
     */
    ReturnResult delete(WxAssociationNewDetailVo wxAssociationNewDetailVo, SysUser sysUser);

    /**
     * 查询页面展示数据
     * @param wxAssociationNewDetailVo
     * @author congcong tao
     * @date 2019/11/19 16:35
     */
    List<WxAssociationNewDetailVoC> findDetailVoList(WxAssociationNewDetailVo wxAssociationNewDetailVo);

    /**
     * 分页
     * @param eductionUserId
     * @param pageSize
     * @param pageNum
     * @author congcong tao
     * @date 2019/11/21 8:27
     */
    ReturnResult pageLeft(String eductionUserId, int pageSize, int pageNum);

    /**
     * 查询老师所带社团的详情
     * @param userNumber 老师的工号
     * @param pageSize
     * @param pageNum
     * @author congcong tao
     * @date 2019/11/22 9:53
     */
    ReturnResult findDetailVoListByTeacher(String userNumber, int pageSize, int pageNum);
}